package com.twb.auth.service;

import java.util.List;

import com.twb.auth.entity.twbProject.TwbProject;
import com.twb.auth.entity.twbProject.dto.ListTwbProjectDto;
import com.twb.auth.entity.twbProject.dto.SearchTwbProjectDto;
import com.twb.auth.entity.twbProject.vo.ListTwbProjectVo;
import com.twb.auth.entity.twbProject.vo.SaveTwbProjectVo;
import com.twb.auth.entity.twbProject.vo.SearchTwbProjectVo;
import com.twb.auth.entity.twbProject.vo.UpdateTwbProjectByIdVo;
import com.twb.core.base.entity.BaseLoginUser;
import com.twb.core.base.entity.TwbPageInfo;
import com.twb.core.base.service.IBaseService;

/**
 * @ClassName ITwbProjectService
 * @Description 项目 service接口
 * @author DSY
 * @date 2018年11月9日 上午9:41:15
 */
public interface ITwbProjectService extends IBaseService<TwbProject> {

	/**
	 * @Title  initRedisProject
	 * @Description 初始化Redis缓存项目信息
	 * 
	 * @return
	 * 
	 * @author DSY
	 * @date 2018年2月22日 下午2:57:36
	 */
	public boolean initRedisProject();

	/**
	 * @Title  getRedisProject
	 * @Description 获取redis缓存项目信息
	 * @return
	 * @author DSY
	 * @date 2018年11月9日 上午9:51:31
	 */
	public List<TwbProject> getRedisProject();

	/**
	 * @Title  searchTwbProject
	 * @Description 分页查询
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2018年11月13日 下午5:21:19
	 */
	public TwbPageInfo<SearchTwbProjectDto> searchTwbProject(SearchTwbProjectVo vo);

	/**
	 * @Title  saveTwbProject
	 * @Description 保存项目信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2018年11月14日 下午3:56:50
	 */
	public boolean saveTwbProject(SaveTwbProjectVo vo);

	/**
	 * @Title  updateTwbProjectById
	 * @Description 跟新项目信息
	 * @param vo
	 * @return
	 * @author DSY
	 * @date 2018年11月14日 下午4:09:01
	 */
	public boolean updateTwbProjectById(UpdateTwbProjectByIdVo vo);

	/**
	 * @Title  deleteTwbProjectById
	 * @Description 删除项目信息
	 * @param id
	 * @return
	 * @author DSY
	 * @date 2018年11月14日 下午4:22:03
	 */
	public boolean deleteTwbProjectById(String id);

	/**
	 * @Title  listTwbProject
	 * @Class: ITwbProjectService.java
	 * @Description 项目列表查询
	 * @return
	 * @author DSY
	 * @date 2019年12月28日 下午9:30:52
	 */
	public List<ListTwbProjectDto> listTwbProject(ListTwbProjectVo vo);

	/**
	 * @Title searchProjectsByLoginUser
	 * @Description 根据登录用户查询已授权系统
	 * @param loginUser
	 * @return java.util.List<com.twb.auth.entity.twbProject.TwbProject>
	 * @author DHL
	 * @throws Exception 
	 * @date 23:49 2022/7/18
	 */
	public List<TwbProject> searchProjectsByLoginUser(BaseLoginUser loginUser);
}
